/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package ec.edu.espe.distribuidas.aseguradora.servicio;


import ec.edu.espe.distribuidas.aseguradora.dao.CuentaSiniestroFacade;
import ec.edu.espe.distribuidas.aseguradora.exception.ErrorValidacionException;
import ec.edu.espe.distribuidas.aseguradora.modelo.CuentaSiniestro;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;

/**
 *
 * @author pacodell
 */
@Stateless
@LocalBean
public class CuentaSiniestroServicio {
     @EJB
    private CuentaSiniestroFacade cuentaSinietroFacade;
     @TransactionAttribute(TransactionAttributeType.REQUIRED)
    public void crear(CuentaSiniestro cuenta) {
     
            this.cuentaSinietroFacade.create(cuenta);
       
    }
     @TransactionAttribute(TransactionAttributeType.REQUIRED)
    public void modificar(CuentaSiniestro detalle) {
        this.cuentaSinietroFacade.edit(detalle);
    }
      @TransactionAttribute(TransactionAttributeType.REQUIRED)
    public void eliminar(String codigoCargo) {
        CuentaSiniestro detTmp = this.cuentaSinietroFacade.findPorCodigo(codigoCargo);
        if (detTmp!=null) {
            this.cuentaSinietroFacade.remove(detTmp);
        } else {
            System.err.println("No existe el cargo con el codigo especificado:."+codigoCargo);
            ErrorValidacionException evex = new ErrorValidacionException("Codigo no existe."+codigoCargo);
            throw evex;
        }
    }
    
    public CuentaSiniestro buscarPorCodigo(String codigo) {
        return this.cuentaSinietroFacade.BuscarPorCodigo(codigo);
    }
     public CuentaSiniestro buscarUnoPorCodigo(String codigo) {
        return this.cuentaSinietroFacade.BuscarUnoPorCodigo(codigo);
    }   
    public List<CuentaSiniestro> obtenerTodas() {
        return this.cuentaSinietroFacade.findAll();
    }
    public List<CuentaSiniestro> obtenerSiniestro(String Codigo) {
        return this.cuentaSinietroFacade.findSiniestro(""+Codigo);
    }
    public List<CuentaSiniestro> BuscarPorSiniestro(String Codigo){
    return this.cuentaSinietroFacade.BuscarPorSiniestro(""+Codigo);
    }
}
